void main() {
  // 空数据 空安全检查
  var a;
  print(a); // null
  String? b = '1111';
  b = null;
  print(b); // null
  String? c = null;
  // c = 'affaf';
  // print(c.length);
  print(c?.length);

  /* 运算符 */
  double d = 10.0;
  double e = 6.0;
  double f = 20.12;
  double number = (d + e) / e * f;
  print('计算后的值 $number');
  print('取余 ${d % e}');
  print('取整 ${f ~/ e}');

  int g = 10;
  g += 10;
  g -= 10;
  g *= 2;
  // g /= 2; // 报错 只有 double 可以 /=
  g--;
  g++;
  print('赋值运算 $g');

  // 比较运算
  print('比较运算 ${d > e} ${d < e} ${d >= e} ${d <= e} ${d == e} ${d != e}');
  // == 和 != 会比较值和类型
  print('比较运算 ${100 == '100'} ${10 != '10'}'); // false true
  // 逻辑运算
  print('逻辑运算 ${d > e && e < f} ${d < e || e < f} ${!(d > e)}');

  int temp = 1;
  (100 > 10) && (temp++ > 10);
  (100 < 10) && (temp++ > 10); // 不会执行 (temp++ > 10)
  (100 > 10) || (temp++ > 10); // 不会执行 (temp++ > 10)
  (100 < 10) || (temp++ > 10);
  print('测试是否会 中断执行 $temp');
}
